Change the priority of the window-close idle to G_PRIORITY_DEFAULT
authorOwen W. Taylor <otaylor@fishsoup.net>
Wed, 6 Jul 2016 13:46:43 +0000 (09:46 -0400)
committerOwen W. Taylor <otaylor@fishsoup.net>
Wed, 6 Jul 2016 13:50:21 +0000 (09:50 -0400)
If we have an application that never goes idle (or takes a long time to
go idle), the close buttons in CSD decoration don't work properly.
While it's not clear why the usage of an idle was added in the first
place, keep on using it to avoid unexpected reentrancy problems, but
change the priority to G_PRIORITY_DEFAULT.

https://bugzilla.gnome.org/show_bug.cgi?id=768485

gtk/gtkwindow.c

index 857e4503036c86897816312a8bc9f976d812663e..8a115d3eacac9c61de6b49877b92ea161841bcc9 100644 (file)
@@ -1342,7 +1342,7 @@ gtk_window_close (GtkWindow *window)
   if (!_gtk_widget_get_realized (GTK_WIDGET (window)))
     return;
 
-  window->priv->delete_event_handler = gdk_threads_add_idle (send_delete_event, window);
+  window->priv->delete_event_handler = gdk_threads_add_idle_full (G_PRIORITY_DEFAULT, send_delete_event, window, NULL);
   g_source_set_name_by_id (window->priv->delete_event_handler, "[gtk+] send_delete_event");
 }